import { get, post } from '../https'

// TODO:
// 增加预约额度
// 删除用户
// 车位管理的时间筛选
// 禁用车位的话额度是否返还了呢
// 删除车位
// spacial-date列表
/**
 * API 接口调用文件
 * 基于 API 文档生成
 */

// ======== 后台管理相关接口 ========

/**
 * 添加后台用户
 * @param {Object} params - 请求参数
 * @param {string} params.username - 用户名
 * @param {string} params.password - 密码
 * @returns {Promise} - 请求响应
 */
export function addManager(params) {
  return get('/api/manager/add', params)
}

/**
 * 后台用户登录
 * @param {Object} params - 请求参数
 * @param {string} params.username - 用户名
 * @param {string} params.password - 密码
 * @returns {Promise} - 请求响应
 */
export function login(params) {
  return get('/api/login', params)
}

/**
 * 后台用户退出登录
 * @returns {Promise} - 请求响应
 */
export function logout() {
  return post('/api/logout')
}

// ======== 用户管理相关接口 ========

/**
 * 获取用户列表 (含季度配额)
 * @param {Object} params - 请求参数
 * @param {string} [params.search] - 搜索关键词 (用户名、手机号、车牌号)
 * @param {number} [params.per_page] - 每页显示记录数
 * @param {number} [params.page] - 页码
 * @returns {Promise} - 请求响应
 */
export function getUserList(params) {
  return get('/api/admin/users/list', params)
}

/**
 * 添加用户
 * @param {Object} params - 请求参数
 * @param {string} params.name - 姓名
 * @param {string} params.phone - 手机号
 * @param {string} params.license_plate - 车牌号
 * @param {boolean} params.is_new_energy - 是否新能源车
 * @returns {Promise} - 请求响应
 */
export function addUser(params) {
  return post('/api/admin/users/add', params)
}

/**
 * 获取单个用户详情
 * @param {number} id - 用户ID
 * @returns {Promise} - 请求响应
 */
export function getUserDetail(id) {
  return post(`/api/admin/users/show/${id}`)
}

/**
 * 修改用户信息
 * @param {number} id - 用户ID
 * @param {Object} params - 请求参数
 * @param {string} [params.name] - 姓名
 * @param {string} [params.phone] - 手机号
 * @param {string} [params.license_plate] - 车牌号
 * @param {boolean} [params.is_new_energy] - 是否新能源车
 * @param {boolean} [params.is_active] - 状态
 * @returns {Promise} - 请求响应
 */
export function updateUser(id, params) {
  return post(`/api/admin/users/update/${id}`, params)
}

// ======== 季度配额管理接口 ========

/**
 * 批量修改用户配额
 * @param {Object} params - 请求参数
 * @param {string} params.quarter - 季度 (current: 当前季度, next: 下季度)
 * @param {number} params.quota - 设置的配额值
 * @returns {Promise} - 请求响应
 */
export function batchUpdateQuota(params) {
  return get('/api/admin/users/batch-update-quota', params)
}

/**
 * 获取季度配额统计信息
 * @returns {Promise} - 请求响应，包含当前季度和下一季度的配额信息
 */
export function getQuotaInfo() {
  return get('/api/admin/users/get-quota')
}

// ======== 车位管理相关接口 ========

/**
 * 添加车位
 * @param {Object} params - 请求参数
 * @param {string} params.space_number - 车位编号，唯一标识
 * @param {string} params.status - 状态：active-可用，inactive-不可用
 * @param {string} [params.notes] - 备注信息
 * @returns {Promise} - 请求响应
 */
export function addParkingSpace(params) {
  return get('/api/admin/parking-space/add', params)
}

/**
 * 获取车位列表
 * @param {Object} params - 请求参数
 * @param {string} [params.space_number] - 车位编号筛选
 * @returns {Promise} - 请求响应
 */
export function getParkingSpaceList(params) {
  return get('/api/admin/parking-space/list', params)
}

/**
 * 编辑车位
 * @param {number} id - 车位ID
 * @param {Object} params - 请求参数
 * @param {string} params.space_number - 车位编号，唯一标识
 * @param {string} params.status - 状态：active-可用，inactive-不可用
 * @param {string} [params.notes] - 备注信息
 * @returns {Promise} - 请求响应
 */
export function updateParkingSpace(id, params) {
  return get(`/api/admin/parking-space/update/${id}`, params)
}

// ======== 特殊日期管理接口 ========

/**
 * 添加额度消耗规则 (管理假期)
 * @param {Object} params - 请求参数
 * @param {string} params.date - 日期
 * @param {string} params.name - 备注
 * @param {string} params.booking_cost - 消耗额度
 * @returns {Promise} - 请求响应
 */
export function addSpecialDate(params) {
  return get('/api/admin/special-dates/add', params)
}

/**
 * 删除额度消耗规则 (管理假期)
 * @param {number} id - 特殊日期ID
 * @returns {Promise} - 请求响应
 */
export function deleteSpecialDate(id) {
  return post(`/api/admin/special-dates/del/${id}`)
}

/**
 * 获取特殊日期列表
 * @returns {Promise} - 请求响应
 */
export function getSpecialDateList() {
  return get('/api/admin/special-dates/list')
}
